﻿Namespace Catalog.Search
    Public MustInherit Class Query
        ''' <summary>
        ''' Which page of the resultset to view.
        ''' </summary>
        Public Property Page As Integer
        ''' <summary>
        ''' How many results per page should be returned.
        ''' </summary>
        Public Property PageSize As Integer
        ''' <summary>
        ''' What field to sort the resultset by. The sort parameter takes a field name and a direction (ASC or DESC).
        ''' </summary>
        Public Property Sort As List(Of QuerySort)

        Public Sub New()
            ' Me.PageSize = 10
            Me.Page = 1
            Me.Sort = New List(Of QuerySort)
        End Sub

        Public MustOverride Function GetUrl() As Uri
    End Class

    Public Enum QueryFilter
        fieldType
        artistName
        artistId
        labelName
        labelId
        performerName
        releaseTypeName
        subGenreName
        subGenreId
        currentStatus
        genreName
        genreId
    End Enum
End Namespace